package cn.virens.common.boot.provider.apijson;

import apijson.NotNull;
import apijson.orm.AbstractFunctionParser;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Objects;

@SuppressWarnings("unused")
public class APIJSONParserFunction extends AbstractFunctionParser<String, JSONObject, JSONArray> {
    private final APIJSONParser parser;

    public APIJSONParserFunction(APIJSONParser parser) {
        this.parser = Objects.requireNonNull(parser);

        this.setRequest(parser.getRequest());
        this.setVersion(parser.getVersion());
        this.setMethod(parser.getMethod());
        this.setTag(parser.getTag());
    }

    public double plus(@NotNull JSONObject request, String i0, String i1) {
        return request.getDoubleValue(i0) + request.getDoubleValue(i1);
    }

    public double minus(@NotNull JSONObject request, String i0, String i1) {
        return request.getDoubleValue(i0) - request.getDoubleValue(i1);
    }

    public double multiply(@NotNull JSONObject request, String i0, String i1) {
        return request.getDoubleValue(i0) * request.getDoubleValue(i1);
    }

    public double divide(@NotNull JSONObject request, String i0, String i1) {
        return request.getDoubleValue(i0) / request.getDoubleValue(i1);
    }

}
